#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2019/1/11 20:05
# @Author  : Seven
# @File    : channels.py
# @Software: PyCharm
import cv2

# 加载图片
img = cv2.imread('lena.jpg')
# 缩放
sizeImage = cv2.pyrDown(img)
cv2.imshow("source image", sizeImage)
# RGB通道分离--opencv中，RGB三个通道是反过来的
rgbImage = cv2.split(sizeImage)
cv2.imshow("R", rgbImage[2])
cv2.imshow("G", rgbImage[1])
cv2.imshow("B", rgbImage[0])
# 分离后为单通道，相当于分离通道的同时把其他两个通道填充了相同的数值。
# 比如红色通道，分离出红色通道的同时，绿色和蓝色被填充为和红色相同的数值，这样一来就只有黑白灰了。
# 可以进行观察，会发现原图中颜色越接近红色的地方在红色通道越接近白色。
# 在纯红的地方在红色通道会出现纯白。
# R值为255 -》RGB(255，255，255)，为纯白

# HSI颜色模型+通道分离
hsv = cv2.cvtColor(sizeImage, cv2.COLOR_BGR2HSV)
hsvChannels = cv2.split(hsv)
cv2.imshow("Hue", hsvChannels[0])
cv2.imshow("Saturation", hsvChannels[1])
cv2.imshow("Value", hsvChannels[2])
# hue 为图像的色调
# Saturation：为图像的饱和度
# Value：图像的亮度
cv2.waitKey(0)
